package com.suspend与resume方法的缺点;

/**
 * @Auther: SJZ    2907374717@qq.com
 * @Date: 2019/3/11 21:38
 * @Description:re
 * suspend:延迟，推迟
 * resume:继续，恢复
 * suspend被弃用的原因是因为他会造成死锁。一直保持锁的占有，一直到其他线程调用resume方法，它才能继续向下执行。
 *加入有A.B两个线程，A线程在获得某个锁之后被suspend 阻塞，这时A不能继续执行，线程B在或者相同的锁之后才能调用resume方法将A唤醒，但是此时的锁
 * 被A占有，B不能执行，也就不能及时唤醒A,此时A,B两个线程都不能继续向下执行而形成了死锁，这就是suspend被弃用的原因。
 */
public class MyObject {
    private String username="username";
    private String password="password";
    public void setValue(String username,String password){
        this.username= username;
        if(Thread.currentThread().getName().equals("a")){
            System.out.println("停止a线程");
            Thread.currentThread().suspend();//java8 已经弃用suspend
            Thread.currentThread().resume();//java8已经弃用resume
        }

    }

}
